草庐IT

android - Robolectric + OkHttp + 改造 + rxJava 单元测试

全部标签

http - 无需重置路由的最小 http 服务测试?

假设我有一个非常简单的Web服务。funcmain(){http.HandleFunc("/",sanityTest)log.Fatal(http.ListenAndServe(":8000",nil))}如果我想测试它,我至少可以拥有:funcExampleTest(){server:=httptest.NewServer(http.DefaultServeMux)deferserver.Close()resp,err:=http.Get(server.URL)iferr!=nil{log.Fatal(err)}body,_:=ioutil.ReadAll(resp.Body)fmt

rest - 如何在 Go 中为允许单元测试的休息服务设置 Mongo DB?

我正在使用MongoDB和mux路由器在go中设置休息服务。我遇到了关于如何最好地设置它以允许在单独的数据库中进行单元/集成测试的问题。我已经尝试在Init()函数中设置数据库,但是在尝试使用测试数据库设置单元测试时这给我带来了问题。以下是我现在所处位置的一些示例。我正在尝试使用一种方法在发布之前连接到数据库,因此在我的测试中我可以连接到不同的测试数据库。typeuserstruct{namestring`json:"name"`ageint`json:"age"`}typedatabasestruct{db*mongo.Database}funcConnectToDB()(*data

regex - 使用 golang 正则表达式获取 xlsx 单元格数据?

我使用正则表达式从.xlsx文件中获取数据。但我很穷,而且是正则表达式的新手。谁能帮帮我?packagemainimport("fmt""regexp")funcmain(){input:=`{{range.txt}}12321012321`r:=regexp.MustCompile(`]*?r="(\d+)"[^>].*?>.*?[((.*?).*?)]`)r2:=regexp.MustCompile(`(.*?)`)row:=r.FindAllString(input,-1)for_,v:=rangerow{fmt.Println(r.ReplaceAllStringFunc(v,

使用指针引用去测试函数

我正在对一个Go项目进行单元测试,我是Go的新手。所以首先我想测试一些简单的东西。我从这个函数开始:func(this*Service)InList(idPersonstring,personsId[]string)bool{for_,personsId:=rangepersonsId{ifid==idPerson{returntrue}}returnfalse}服务是定义在类之上的结构。这是我写的测试:funcTestValidatePersonID(t*testing.T){personID:="12345"personIDs:=[]string{"12345","123456t"

testing - 为什么 GoConvey 测试失败并显示错误代码 0?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭4年前。Improvethisquestion我需要在构建过程中运行GoConvey测试我如何确保gotest以错误退出代码(非0)退出?

google-app-engine - goapp 测试不工作,得到错误 "GOPATH must be absolute"而它是绝对的

我正准备为我的谷歌云应用程序编写测试。我阅读了文档,似乎在本地运行测试的唯一方法是在测试包目录中运行命令goapptest。但是当我运行命令时,出现错误go:GOPATHentryisrelative;必须是绝对路径:"".我很确定我的GOPATH已绝对设置。以下是我运行命令goenv|时的结果grepGOPATH:GOPATH=":/home/mohammad/go:/home/mohammad/go/src/gitlab.com/gc-auth"当我运行echo$GOPATH时也得到相同的输出。感谢任何帮助。PS:我有ubuntu18.04,我的go版本是1.10.4gcloud版

unit-testing - 如何测试 bytes.ErrTooLarge panic 错误

我想在bytes.Buffer.Write方法上模拟bytes.ErrTooLargepanic错误并测试panic处理。我试图写入无限量的数据以超过内存,但随后整个测试崩溃了。还有哪些选择? 最佳答案 听起来像是模拟对象的工作。在测试期间使用此(badBuffer)代替bytes.Buffer。typebadBufferbytes.Bufferfunc(b*badBuffer)Write(p[]byte)(nint,errerror){panic(bytes.ErrTooLarge)}

go 测试用例未在主包中运行

这个问题在这里已经有了答案:WhyamIgetting"noteststorun"despitehavingatestfunction?(1个回答)关闭7个月前。我正在尝试编写一个简单的测试以更好地理解golang测试,但测试用例似乎没有执行,我预计它会失败。在我的main.go中我有:packagemainimport"fmt"funcmain(){fmt.Println("run")}functwoSum(nums[]int,targetint)[]int{lookup:=make(map[int]int)fori,n:=rangenums{c:=target-nifj,ok:=l

go - 如何编写干净的集成测试

我想使用Go和MySQL编写集成测试。但是我很困惑如何做到这一点。我有4个功能:创建、获取、更新和删除。如果我只有一个测试函数来测试我的所有代码,这是一种好习惯吗?例如:funcTestCRUD(t*testing.T){t.Run("successcase",func(t*testing.T){//callcreatefunc//callupdatefunc//callgetfunc//calldeletefunc})}如果我有上面的代码,我只有一个测试函数来测试我的所有代码。如果我想添加一个测试用例,我只需添加到TestCRUD()函数。这是一个好的做法吗?或者我应该为每个CRUD

go - 将项目测试映射为表达式

围棋之旅解释了如何测试映射中是否存在键:m:=make(map[string]int)m["Answer"]=42v,ok:=m["Answer"]ifok{DoSomethingifset}if!ok{DoSomethingifnotset}有没有办法不用赋值,表达式方式来测试,类似这样:ifm["Answer"]ISNOTNULL{DoSomethingifset}ifm["Answer"]ISNULL{DoSomethingifnotset}或者fmt.Println(m["Answer"]==nil) 最佳答案 我认为您试图